Context - Insensitive Alias Analysis

نویسنده

  • Erik Ruf
چکیده

part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for proot or commercial advantage and that copies bear this notice and the full citation on the rst page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, to republish, to post on servers, or to redistribute to lists, requires prior speciic permission and/or a fee. Request permissions from Publications Dept, ACM Inc., fax + 1 (212) 869-0481, or [email protected]. Abstract Recent work on alias analysis in the presence of pointers has concentrated on context-sensitive interprocedural analyses , which treat multiple calls to a single procedure independently rather than constructing a single approximation to a procedure's eeect on all of its callers. While context-sensitive modeling ooers the potential for greater precision by considering only realizable call-return paths, its empirical beneets have yet to be measured. This paper compares the precision of a simple, eecient, context-insensitive points-to analysis for the C programming language with that of a maximally context-sensitive version of the same analysis. We demonstrate that, for a number of pointer-intensive benchmark programs, context-insensitivity exerts little to no precision penalty. We also describe techniques for using the output of context-insensitive analysis to improve the eeciency of context-sensitive analysis without aaecting precision. 1 Introduction Modern compilers and programming environments are becoming increasingly dependent on semantic information extracted via dataaow analysis. In programs containing pointers , many dataaow analyses depend crucially on the ability to approximate the targets of indirect memory operations, so that all potential uses or modiications of a value can be taken into account. Alias analysis 1 provides this approximation ; its precision directly eeects the quality of virtually all other dataaow analyses. Early pointer alias analyses were completely ow-insensitive; both Weihl Wei80] and Coutant Cou86] computed alias information on a program-wide basis, building a single, global mapping between pointers and their potential referents. Others later found that these methods generated overly large, imprecise approximations, handicapping subsequent analyses Ryd89, LR92].

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Eecient Points-to Analysis for Whole-program Analysis

To function on programs written in languages such as C that make extensive use of pointers, automated software engineering tools require safe alias information. Existing alias-analysis techniques that are suuciently eecient for analysis on large software systems may provide alias information that is too imprecise for tools that use it: the impreci-sion of the alias information may (1) reduce th...

متن کامل

Estimating the Impact of Scalable Pointer Analysis on Optimization

This paper addresses the following question: Do scalable control-flow-insensitive pointer analyses provide the level of precision required to make them useful in compiler optimizations? We first describe alias frequency, a metric that measures the ability of a pointer analysis to determine that pairs of memory accesses in C programs cannot be aliases. We believe that this kind of information is...

متن کامل

Assessing the E ects of Flow - Sensitivity

This paper describes an empirical comparison of four context-insensitive pointer alias analysis algorithms that use varying degrees of ow-sensitivity: a ow-insensitive algorithm that tracks variables whose addresses were taken and stored; a ow-insensitive algorithm that computes a solution for each function; a variant of this algorithm that uses precomputed kill information; and a ow-sensitive ...

متن کامل

Alias Analysis for Java with Reference-Set Representation

We propose a flow-sensitive context-insensitive alias analysis in Java that is more efficient and precise than previous analyses in C++. For that, we propose a reference-set alias representation. Second, we present the propagation rules for the reference-set alias representation. Third, for the type determination, the type table is built with reference variables and all possible types of the re...

متن کامل

Discovering Context Information for Efficient and Accurate Program Analyses

A program analysis may compute spurious information for a program with pointer variables, when the analysis uses alias information provided by efficient flow-insensitive alias analysis algorithms, because the program analysis cannot distinguish the alias relations that hold in a procedure when the procedure is invoked at a specific callsite. This paper presents a technique that determines wheth...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1995